﻿Imports System.Data.OleDb

Imports DTO
Public Class NhanVienDAO
    'ham  doc gia tri trong csdl
    Public Function LayNhanVien() As List(Of NhanVienDTO)

        Dim sql = "select MaNV, HoTenNV,DienThoai,DiaChi,NgaySinh,MaBoPhan,MaBangCap,MaChucVu from NhanVien "
        Dim con As OleDbConnection = DatabaseProvider.connectData() 'ket noi csdl
        Dim cmd As New OleDbCommand(sql, con) ' thuc hien ket noi
        Dim reader As OleDbDataReader = cmd.ExecuteReader() ' thuc thi 
        Dim danhsach As New List(Of NhanVienDTO) 'khai báo danhsach de du lieu do vao nó
        While reader.Read()
            Dim nvDTO As New NhanVienDTO() ' khai báo doi tuong nvDTO de gán nhung doi tuong trong csdl vao
            nvDTO.MaNV = reader("MaNV") 'gán manv vao
            nvDTO.HoTenNV = reader("HoTenNV")
            nvDTO.DienThoai = reader("DienThoai")
            nvDTO.DiaChi = reader("DiaChi")
            nvDTO.NgaySinh = reader("NgaySinh")
            nvDTO.MaBoPhan = reader("MaBoPhan")
            nvDTO.MaBangCap = reader("MaBangCap")
            nvDTO.MaChucVu = reader("MaChucVu")
            danhsach.Add(nvDTO) ' add doi tuong nvDTO vao danhsach
        End While

        con.Close() ' đóng kết nối
        Return danhsach
    End Function
    'hjx ! ten tham tri
    Public Function ThemNhanVien(ByVal nvDTO As NhanVienDTO) As Integer
        'khai báo câu sql them nhân viên
        Dim sql As String = "insert into NhanVien (HoTenNV,DienThoai,DiaChi,NgaySinh,MaBoPhan,MaBangCap,MaChucVu) values (@HoTenNV,@DienThoai,@DiaChi,@NgaySinh,@MaBoPhan,@MaBangCap,@MaChucVu)"
        'mở kết nối csdl
        Dim con As OleDbConnection = DatabaseProvider.connectData()
        'tạo câu lệnh đẻ kết nối csdl
        Dim cmd As New OleDbCommand(sql, con)
        Dim para As OleDbParameter
        'điền giá trị 
        'hjx ! sao khai bao moi , hen gi ko co du~ lieu !
        'Dim nvDTO As New NhanVienDTO()

        para = cmd.Parameters.Add("@HoTenNV", OleDbType.VarChar)
        para.Value = nvDTO.HoTenNV
        para = cmd.Parameters.Add("@DienThoai", OleDbType.VarChar)
        para.Value = nvDTO.DienThoai
        para = cmd.Parameters.Add("@DiaChi", OleDbType.VarChar)
        para.Value = nvDTO.DiaChi
        para = cmd.Parameters.Add("@NgaySinh", OleDbType.Date)
        para.Value = nvDTO.NgaySinh
        para = cmd.Parameters.Add("@MaBoPhan", OleDbType.Integer)
        para.Value = nvDTO.MaBoPhan
        para = cmd.Parameters.Add("@MaBangCap", OleDbType.Integer)
        para.Value = nvDTO.MaBangCap
        para = cmd.Parameters.Add("@MaChucVu", OleDbType.Integer)
        para.Value = nvDTO.MaChucVu
        'thuc thi cau sql
        Dim i As Integer = cmd.ExecuteNonQuery()
        'dong ket noi 
        con.Close()
        If (i > 0) Then
            Return 1 'them thanh công
        Else
            Return 0 'them that bai
        End If

    End Function

    Public Function update(ByVal nvDTO As NhanVienDTO)
        'khai báo câu sql them nhân viên
        Dim sql As String = " update NhanVien set MaNV=@MaNV,HoTenNV=@HoTenNV,DienThoai=@DienThoai,DiaChi=@DiaChi,NgaySinh=@NgaySinh,MaBoPhan=@MaBoPhan,MaBangCap=@MaBangCap,MaChucVu=@MaChucVu)"
        'mở kết nối csdl
        Dim con As OleDbConnection = DatabaseProvider.connectData()
        'tạo câu lệnh đẻ kết nối csdl
        Dim cmd As New OleDbCommand(sql, con)
        Dim para As OleDbParameter
        'điền giá trị 
        'para = cmd.Parameters.Add("MaNV", OleDbType.VarChar)
        'para.Value = nvDTO.MaNV
        para = cmd.Parameters.Add("HoTenNV", OleDbType.VarChar)
        para.Value = nvDTO.HoTenNV
        para = cmd.Parameters.Add("DienThoai", OleDbType.VarChar)
        para.Value = nvDTO.DienThoai
        para = cmd.Parameters.Add("DiaChi", OleDbType.VarChar)
        para.Value = nvDTO.DiaChi
        para = cmd.Parameters.Add("NgaySinh", OleDbType.Date)
        para.Value = nvDTO.NgaySinh
        para = cmd.Parameters.Add("MaBoPhan", OleDbType.Integer)
        para.Value = nvDTO.MaBoPhan
        para = cmd.Parameters.Add("MaBangCap", OleDbType.Integer)
        para.Value = nvDTO.MaBangCap
        para = cmd.Parameters.Add("MaChucVu", OleDbType.Integer)
        para.Value = nvDTO.MaChucVu
        'thuc thi cau sql
        Dim i As Integer = cmd.ExecuteNonQuery()
        'dong ket noi 
        con.Close()
        If (i >= 0) Then
            Return 1 'cap nhat  thanh công
        Else
            Return 0 'cap nhat that bai
        End If

    End Function
    'Public Function capnhat(ByVal bangnhanvien As NhanVienDTO)

    'End Function
    Public Function xoanhanvien(ByVal MaNV As Int32) As Integer
        'khai báo câu sql them nhân viên
        Dim sql As String = "delete from NhanVien where MaNV=" + MaNV.ToString() 'tìm manv giong voi ma nhan vien minh truyen vao -->delect nó 
        'mở kết nối csdl
        Dim con As OleDbConnection = DatabaseProvider.connectData()
        'tạo câu lệnh đẻ kết nối csdl
        Dim cmd As New OleDbCommand(sql, con)

        Dim i As Integer = cmd.ExecuteNonQuery()
        'dong ket noi 
        con.Close()
        If (i >= 0) Then
            Return 1 'xoa thanh cong  thanh công
        Else
            Return 0 'xoa  that bai
        End If
    End Function

End Class
